package com.tac.dao;

import com.tac.pojo.Order;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OrderDao {

    /**
     * 添加订单
     * @param order
     * @return
     */
    public Integer save(Order order);

    /**
     * 根据id删除订单
     * @param id
     * @return
     */
    public Integer removeById(Integer id);

    /**
     * 更新订单 （主要更新状态用）
     * @param order
     * @return
     */
    public Integer updeteById(Order order);

    /**
     * 查看订单分页 时间排序
     * @param uid
     * @return
     */
    public List<Order> selectAll(@Param("uid") Integer uid,@Param("page") Integer page,@Param("limit") Integer limit);
    //辅助查看条数
    public Integer selectAllCount(@Param("uid") Integer uid);

    /**
     * 用户根据订单状态查看订单
     * @param status
     * @return
     */
    public List<Order> selectByStatus(@Param("status")Integer status,@Param("uid") Integer uid,@Param("page") Integer page,@Param("limit") Integer limit);
    //辅助查看条数
    public Integer selectByStatusCount(@Param("status")Integer status,@Param("uid") Integer uid);

    /**
     * 根据id查看详情
     * @param id
     * @return
     */
    public Order selectById(Integer id);
//------------------------------------------------------------------------------------------------------------

    /**
     * 管理员查看所有订单
     * @return
     */
    public List<Order> selectAll2();

    /**
     * 管理员分类型查询订单等功能
     * @return
     */
    public List<Order> selectByStatu2(Integer status);
}
